Data formats are designed to enable efficient processing and storage of a variety of different dataset characteristics. Algorithms that process data in these formats are critical. Unfortunately, current processors are not always capable of working with particular data formats efficiently.
Processor designers have historically provided minimal direct support for application specific instructions. Thus, software developers have relied on the increasing speed at which existing processors execute a set of instructions to increase performance of a particular algorithm.
The performance of typical processing units, however, is not increasing at the same rate. Thus, software developers are not able to rely as much on increasing computer power to more quickly process particular data formats.
Single instruction multiple data (“SIMD”) processors perform the same operation on multiple data items simultaneously. SIMD processors exploit data level parallelism by executing a single instruction against data in multiple registers or subregisters. Thus, the throughput per instruction may be increased accordingly. SIMD processors are typically used for graphic and other multimedia applications. Accordingly, it may be difficult to use the SIMD architecture to process particular data formats efficiently.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.